package com.zhang.sort;

import com.zhang.sort.cmp.*;
import com.zhang.tools.NewArrayUtils;

import java.util.Arrays;

/**
 * @author 张吉鑫
 * @Description 测试比较的七个排序算法
 * @date 2021/4/11 17:54
 */
public class TestCmp {
    public static void main(String[] args) {

        Integer[] array = NewArrayUtils.getArray(60000);
        sort(array,
//                new BubbleSort3(),
//                new SelectSort(),
                new HeapSort(),
//                new InsertionSort1(),
//                new InsertionSort2(),
                new InsertionSort3(),
                new MergeSort(),
                new QuickSort(),
                new ShellSort()
//                new BubbleSort2(),
//                new BubbleSort()
                );
//        int[] a = new int[]{2,3,4,5,6,7,8,9,10};
//        int index = BinarySearch.indexOf(a, 8);
//        System.out.println(index);

    }

    /**
     * 批量执行排序算法 按照执行时间排序打印结果
     * @param array
     * @param sorts
     */
    public static void sort(Integer[] array,Sort... sorts){
        for (Sort sort : sorts) {
            Integer[] copyArray = NewArrayUtils.copyArray(array);
            sort.sort(copyArray);
//            NewArrayUtils.printArray(copyArray);
//            System.out.println(sort.getClass().getName());
        }
        Arrays.sort(sorts);
        for (Sort sort : sorts) {
            System.out.println(sort);
        }


    }

}
